Electronic musical instruments typically utilize Musical Instrument Digital Interface (MIDI) technology to communicate with other electronic musical instruments, music workstations, computers, and other such electronic devices. Such electronic musical instruments, referred to generally as MIDI devices, or MIDI controllers, generate digital musical sound control data which can be used to generate audio sounds, be recorded for later playback, or be transmitted to other devices. For example, MIDI data may be transmitted to devices such as a computer, including tablets, notebooks, and other mobile computers, operating software applications used for recording, editing and playing back digital audio.
MIDI standards, including the MIDI 1.0 standard, define physical layers and a command language of a protocol for communication between MIDI-capable devices. A stream of MIDI digital musical sound control data in the form of commands, may be streamed over a MIDI cable from a MIDI-sending device to a MIDI receiving-device, in accordance to the MIDI standard. Alternatively, MIDI data may be transmitted wirelessly from a sender to a receiver.
Wireless transmission of MIDI data over a lossy network poses unique challenges with respect to real-time transmission and generation of live music due to lost or delayed data. Generally, to minimize data loss when transmitting data over a wireless network, a “reliable” or connection-oriented transport protocol, such as TCP over IP may be used. However, use of TCP/IP inherently results in high latency or delays as lost or missing data are retransmitted over the network. For certain applications, high rates of latency are inconsequential. For example, when a MIDI device streams data to a workstation used to record the data stream, relatively long delays between generation of the data and recording of the data do not affect the recording quality. In such an instance, data quality may be the most important factor.
On the other hand, when a MIDI data stream generated by a musician playing a MIDI instrument is transmitted to a remote device that generates the sound represented by the data in real-time, transmission delays of more than 20 milliseconds may be noticed by a listener, including the musician playing the MIDI instrument, other collaborating musicians, and particularly, an audience. Therefore, for real-time generation of sound in wireless networks, MIDI data may be transmitted wirelessly based on “connectionless-oriented”, or “best-efforts” protocols such as UDP/IP. Such transmission avoids some of the high-latency problems created by retransmission of data and other characteristics of reliable transport protocols.
However, while connectionless protocols may reduce latency in some cases, the periodic loss of MIDI data packets during transmission creates other problems that affect the quality of the musical sounds generated by the remote device. For example, the loss of a command “Note Off”, which commands that a note previously “turned on” via a “Note On” command be turned off, can result in a note being played or generated continuously, rather than lasting only a predetermined period of time.
In an attempt to address these types of problems, a transport protocol directed specifically to transmission of MIDI music control data has been developed. The RTP MIDI protocol, proposed by John Lazzaro and John Warzynek in 2004, and defined in the RFC 6295 standard adopted by the Internet Engineering Task Force (IEFT), utilizes the generic protocol for real-time applications, Real-Time Protocol (RTP), to transport MIDI data over connectionless-oriented networks, such as UDP/IP networks. Rather than relying on retransmission to augment missing data packets at a receiver, the RTP MIDI protocol utilizes a system of recovery journals to transmit data packet state information, along with current MIDI command data, allowing lost data packets to be reconstructed based on the state data at the receiver as needed.
However, while the RTP MIDI protocol improves the quality of received MIDI music control data transmitted over lossy wireless networks as compared to other protocols, periodic high latency, in combination with latency variation (jitter), still result in occasional unintended audible distortion of the music generated from the MIDI data stream.